-- 操作Hash，如果当前 key 对应的值小于传入的值，则修改，否则无任何操作
-- KEYS[1]: redis key of hash
-- ARGV[1]: Hash中的key
-- ARGV[2]: 新值，整形
-- 返回这个key原来的值

local val = redis.call("HGET", KEYS[1], ARGV[1])
local newVal = tonumber(ARGV[2])
if val then
    if type(val) == 'string' then
        val = tonumber(val)
    end
    if newVal > val then
        redis.call("HSET", KEYS[1], ARGV[1], newVal)
    end
else
    redis.call("HSET", KEYS[1], ARGV[1], newVal)
end
    
return val
